Submitted URL: http://javbros.com/
Effective URL: http://www.javbros.com/
Submission: On February 20 via manual from US

Summary

This website contacted 23 IPs in 5 countries across 14 domains to perform 74 HTTP transactions. The main IP is 2606:4700:30::6818:6611, located in United States and belongs to CLOUDFLARENET - Cloudflare, Inc., US. The main domain is www.javbros.com.
This is the only time www.javbros.com was scanned on urlscan.io!

urlscan.io Verdict: No classification

Domain & IP information

IP Address AS Autonomous System
1 2 2606:4700:30:... 13335 (CLOUDFLAR...)
34 2606:4700:30:... 13335 (CLOUDFLAR...)
2 209.197.3.15 20446 (HIGHWINDS3)
1 2606:4700:20:... 13335 (CLOUDFLAR...)
1 205.185.216.42 20446 (HIGHWINDS3)
1 2a00:1450:400... 15169 (GOOGLE)
1 2606:4700::68... 13335 (CLOUDFLAR...)
1 94.31.29.128 12989 (HWNG)
8 88.208.59.100 39572 (ADVANCEDH...)
2 2a00:1450:400... 15169 (GOOGLE)
1 2606:4700:20:... 13335 (CLOUDFLAR...)
4 95.211.229.245 60781 (LEASEWEB-...)
4 95.211.229.246 60781 (LEASEWEB-...)
2 95.211.229.247 60781 (LEASEWEB-...)
1 185.59.220.22 60068 (CDN77)
1 34.196.182.1 14618 (AMAZON-AES)
1 2606:4700::68... 13335 (CLOUDFLAR...)
1 69.89.69.120 558 (NNEXT)
1 216.21.13.17 53334 (TUT-AS)
2 2606:4700::68... 13335 (CLOUDFLAR...)
1 2606:4700::68... 13335 (CLOUDFLAR...)
2 69.89.69.121 558 (NNEXT)
74 23
Domain Requested by
32 cdn.javbros.com www.javbros.com
10 syndication.exoclick.com ads.exoclick.com
8 ca.clcknads.pro www.javbros.com
ca.clcknads.pro
3 doublepimpads.com
3 engine.phn.doublepimp.com ca.clcknads.pro
3 www.javbros.com www.javbros.com
2 www.google-analytics.com www.javbros.com
2 code.ionicframework.com www.javbros.com
2 maxcdn.bootstrapcdn.com www.javbros.com
1 serve.popads.net c1.popads.net
1 c.adsco.re c1.popads.net
1 dcba.popcash.net cdn.popcash.net
1 c1.popads.net www.javbros.com
1 cdn.popcash.net www.javbros.com
1 cdnjs.cloudflare.com www.javbros.com
1 ajax.googleapis.com www.javbros.com
1 ads.exoclick.com www.javbros.com
1 javbros.com 1 redirects
0 gitgrub.pro Failed www.javbros.com
74 19

This site contains no links.

Subject Issuer Validity Valid
*.bootstrapcdn.com
COMODO RSA Domain Validation Secure Server CA
2018-10-03 -
2019-10-12
a year crt.sh
*.exoclick.com
Go Daddy Secure Certificate Authority - G2
2018-08-03 -
2019-10-02
a year crt.sh
sni68811.cloudflaressl.com
COMODO ECC Domain Validation Secure Server CA 2
2018-12-01 -
2019-06-09
6 months crt.sh
*.googleapis.com
Google Internet Authority G3
2019-01-29 -
2019-04-23
3 months crt.sh
ssl412106.cloudflaressl.com
COMODO ECC Domain Validation Secure Server CA 2
2018-09-22 -
2019-03-31
6 months crt.sh
*.google-analytics.com
Google Internet Authority G3
2019-01-29 -
2019-04-23
3 months crt.sh
*.popcash.net
COMODO RSA Domain Validation Secure Server CA
2017-04-05 -
2020-04-26
3 years crt.sh
ca.clcknads.pro
Let's Encrypt Authority X3
2019-02-13 -
2019-05-14
3 months crt.sh
engine.doublepimp.com
Go Daddy Secure Certificate Authority - G2
2018-07-22 -
2019-09-20
a year crt.sh

This page contains 11 frames:

Primary Page: http://www.javbros.com/
Frame ID: D23F755EFAC6C492E3289BF9DE6D9A9A
Requests: 68 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430213&type=728x90&p=http%3A//www.javbros.com/&dt=1550694134257&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: BABCBFA8009B1FE417F376C356514AEE
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430249&type=315x300&p=http%3A//www.javbros.com/&dt=1550694134259&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: E9DA0DB03CA915DE12F2A4CE60F24A58
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430217&type=728x90&p=http%3A//www.javbros.com/&dt=1550694134308&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 977EA20456BAC773A1FE80617561BBF0
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430251&type=315x300&p=http%3A//www.javbros.com/&dt=1550694134309&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 421C6FD09E14745462DC68095A313ECF
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430207&type=300x250&p=http%3A//www.javbros.com/&dt=1550694134311&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 28F20614C75CADC1634437C560222651
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430209&type=300x250&p=http%3A//www.javbros.com/&dt=1550694134317&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 7187E4D8AFB46CE17E74BE287D94C01A
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430211&type=300x250&p=http%3A//www.javbros.com/&dt=1550694134321&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: E821CD75179B6AC4F7EA56FE5AEE0625
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430225&type=300x100&p=http%3A//www.javbros.com/&dt=1550694134326&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 6B6C0C745D9C611F32A0D22FEAC1693C
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430231&type=300x100&p=http%3A//www.javbros.com/&dt=1550694134330&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 96285611C1007D549C5E273BB999E061
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430235&type=300x100&p=http%3A//www.javbros.com/&dt=1550694134334&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: D37CF9D00BDC3CD3E72FFE1B0F9667D1
Requests: 1 HTTP requests in this frame

Screenshot


Page URL History Show full URLs

  1. http://javbros.com/ HTTP 302
    http://www.javbros.com/ Page URL

Detected technologies

Overall confidence: 100%
Detected patterns
  • headers server /cloudflare/i

Overall confidence: 100%
Detected patterns
  • script /google-analytics\.com\/(?:ga|urchin|(analytics))\.js/i
  • env /^gaGlobal$/i

Overall confidence: 100%
Detected patterns
  • html /<link[^>]* href=[^>]+ionicons(?:\.min)?\.css/i

Overall confidence: 100%
Detected patterns
  • env /^jQuery$/i

Overall confidence: 100%
Detected patterns
  • html /<link[^>]+?href="[^"]+bootstrap(?:\.min)?\.css/i

Page Statistics

74
Requests

59 %
HTTPS

45 %
IPv6

14
Domains

19
Subdomains

23
IPs

5
Countries

4671 kB
Transfer

5570 kB
Size

8
Cookies

Page URL History

This captures the URL locations of the websites, including HTTP redirects and client-side redirects via JavaScript or Meta fields.

  1. http://javbros.com/ HTTP 302
    http://www.javbros.com/ Page URL

Redirected requests

There were HTTP redirect chains for the following requests:

74 HTTP transactions

Resource
Path
Size
x-fer
Type
MIME-Type
Primary Request /
www.javbros.com/
Redirect Chain
  • http://javbros.com/
  • http://www.javbros.com/
55 KB
12 KB
Document
General
Full URL
http://www.javbros.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
4d5237f17df0e3cd417f46d8a6e821fcd45277d098c5432250dbf855671a87db

Request headers

Host
www.javbros.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding
gzip, deflate
Cookie
__cfduid=d46b5e3cadbd676161f079229fb8ec1911550694132
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 20 Feb 2019 20:22:13 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Server
cloudflare
CF-RAY
4ac3af1d186a97a4-FRA
Content-Encoding
gzip

Redirect headers

Date
Wed, 20 Feb 2019 20:22:13 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Set-Cookie
__cfduid=d46b5e3cadbd676161f079229fb8ec1911550694132; expires=Thu, 20-Feb-20 20:22:12 GMT; path=/; domain=.javbros.com; HttpOnly
Location
http://www.javbros.com/
X-Served-By
Namecheap URL Forward
Server
cloudflare
CF-RAY
4ac3af1a99a3637f-FRA
bootstrap.min.css
maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/
103 KB
17 KB
Stylesheet
General
Full URL
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/css/bootstrap.min.css
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
9887e1bff87730bab759289295dbae64edec691373cee7f52caf30df3de5dc96

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/
Origin
http://www.javbros.com

Response headers

date
Wed, 20 Feb 2019 20:22:13 GMT
content-encoding
gzip
last-modified
Wed, 12 Dec 2018 18:34:09 GMT
access-control-allow-origin
*
etag
"1544639649"
vary
Accept-Encoding
x-cache
HIT
content-type
text/css; charset=utf-8
status
200
cache-control
public, max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
timing-allow-origin
*
content-length
17266
ionicons.min.css
code.ionicframework.com/ionicons/2.0.1/css/
50 KB
9 KB
Stylesheet
General
Full URL
http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
HTTP/1.1
Server
2606:4700:20::6819:7c63 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
92ac508220f5bb60ec94e07650528eb66625f82a4740ada068cde05365781286

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

X-Fastly-Request-ID
6b0be62b47e0d073634d0fc49db1aae8605443ac
Date
Wed, 20 Feb 2019 20:22:13 GMT
Via
1.1 varnish
CF-Cache-Status
HIT
Transfer-Encoding
chunked
X-Cache
MISS
Connection
keep-alive
Content-Encoding
gzip
X-Served-By
cache-fra19137-FRA
Last-Modified
Mon, 04 Feb 2019 22:08:34 GMT
Server
cloudflare
X-GitHub-Request-Id
F8D0:21BE:263C00:31501A:5C6DB62D
X-Timer
S1550693934.672423,VS0,VE103
ETag
W/"5c58b7e2-c854"
Vary
Accept-Encoding
Content-Type
text/css; charset=utf-8
Access-Control-Allow-Origin
*
Expires
Wed, 20 Feb 2019 22:22:13 GMT
Cache-Control
public, max-age=7200
CF-RAY
4ac3af20ae9b6511-FRA
X-Cache-Hits
0
style.css
www.javbros.com/static/css/
5 KB
2 KB
Stylesheet
General
Full URL
http://www.javbros.com/static/css/style.css
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
83548d528fc1583d7105e0d440021e14e5d1fa31a845d142eee8784db7b5a4c4

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
www.javbros.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/css,*/*;q=0.1
Referer
http://www.javbros.com/
Cookie
__cfduid=d46b5e3cadbd676161f079229fb8ec1911550694132
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 20 Feb 2019 20:22:13 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Fri, 27 Jan 2017 17:31:00 GMT
Server
cloudflare
ETag
W/"1485538260.120573-5326-3995800449"
Vary
Accept-Encoding
Content-Type
text/css; charset=utf-8
Cache-Control
public, max-age=43200
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4ac3af20881b97a4-FRA
Expires
Thu, 21 Feb 2019 08:22:13 GMT
bros.png
www.javbros.com/static/img/
2 KB
3 KB
Image
General
Full URL
http://www.javbros.com/static/img/bros.png
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
HTTP/1.1
Server
2606:4700:30::6818:6711 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
1655f9ca582fdfbdac66c8199397e534c1d0c4e5895860eb38f8aee18a880f31

Request headers

Pragma
no-cache
Accept-Encoding
gzip, deflate
Host
www.javbros.com
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
image/webp,image/apng,image/*,*/*;q=0.8
Referer
http://www.javbros.com/
Cookie
__cfduid=d46b5e3cadbd676161f079229fb8ec1911550694132
Connection
keep-alive
Cache-Control
no-cache
Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 20 Feb 2019 20:22:13 GMT
CF-Cache-Status
HIT
Last-Modified
Sun, 22 Jan 2017 11:29:22 GMT
Server
cloudflare
ETag
"1485084562.5722697-2516-3648852726"
Vary
Accept-Encoding
Content-Type
image/png
Cache-Control
public, max-age=43200
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4ac3af208ab96349-FRA
Content-Length
2516
Expires
Thu, 21 Feb 2019 08:22:13 GMT
ads.js
ads.exoclick.com/
2 KB
1 KB
Script
General
Full URL
https://ads.exoclick.com/ads.js
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
205.185.216.42 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
map2.hwcdn.net
Software
/
Resource Hash
19ba920e285740334e022bd97d6dfb8f7c390db18d301346e2b527e4fe576db9

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Encoding
gzip
X-HW
1550694133.dop008.pa1.t,1550694133.cds021.pa1.shn,1550694134.dop008.pa1.t,1550694134.cds037.pa1.c
Content-Type
text/javascript;charset=UTF-8
Cache-Control
max-age=10800
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
781
QmTPWcScCKncn2vV48ufxZjUZsJAAimjneSDrCZgUTgRBe
cdn.javbros.com/ipfs/
47 KB
47 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmTPWcScCKncn2vV48ufxZjUZsJAAimjneSDrCZgUTgRBe
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
6740c3d670cbb2833a7a74fb12456503cf2f9248d5bc4958fab28ba5be432ce6

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqewbqfmcikxjsemfsbjye6budruh7sbt64ykn4lutewmcau3xymii
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
48134
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmTPWcScCKncn2vV48ufxZjUZsJAAimjneSDrCZgUTgRBe"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmTPWcScCKncn2vV48ufxZjUZsJAAimjneSDrCZgUTgRBe
accept-ranges
bytes
cf-ray
4ac3af21be2397aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmdnL78ow6XxvXX5AJ4pbP5v1wCKkurYmzgzWho6kKHpZb
cdn.javbros.com/ipfs/
44 KB
45 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmdnL78ow6XxvXX5AJ4pbP5v1wCKkurYmzgzWho6kKHpZb
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
3ac736a52b986a9ea970d80738c0a32d6de79352169b02bd6436809626eadb0b

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqok4263gf7fcfm5xh2ldywfcnu3fcj2dfi4kd4dzyndft7ipdyrpq
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
45444
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmdnL78ow6XxvXX5AJ4pbP5v1wCKkurYmzgzWho6kKHpZb"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmdnL78ow6XxvXX5AJ4pbP5v1wCKkurYmzgzWho6kKHpZb
accept-ranges
bytes
cf-ray
4ac3af21be2797aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmcwCedP7EuRg6MtG5f5wLJMFT5K4gA494q1LQiKPQS9t3
cdn.javbros.com/ipfs/
47 KB
47 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmcwCedP7EuRg6MtG5f5wLJMFT5K4gA494q1LQiKPQS9t3
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
74ddff937b6575f8ab5b2edf7ad3bb6755dae3a6093bbb50c51a273fdb08bbc8

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqnrxl2vnz2fb5vyjuj4e3nu5b6zl3qhqfmtr5gqaypdrgbce2h5sa
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
47879
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmcwCedP7EuRg6MtG5f5wLJMFT5K4gA494q1LQiKPQS9t3"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmcwCedP7EuRg6MtG5f5wLJMFT5K4gA494q1LQiKPQS9t3
accept-ranges
bytes
cf-ray
4ac3af21be3697aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmcb9TVHwWmssSSq9ZCi9xfoW7uMyqjZSFdaJtkNYBuUnf
cdn.javbros.com/ipfs/
35 KB
36 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/Qmcb9TVHwWmssSSq9ZCi9xfoW7uMyqjZSFdaJtkNYBuUnf
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
c1417ddd1911b3db25f682e7cc1fc5936cccefffffc7db300509dfddb16b1e39

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqnhosa6qegniayldgwxqd5z4meaiz7hegenxcjuncmllxkbvmlmba
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
36272
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"Qmcb9TVHwWmssSSq9ZCi9xfoW7uMyqjZSFdaJtkNYBuUnf"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/Qmcb9TVHwWmssSSq9ZCi9xfoW7uMyqjZSFdaJtkNYBuUnf
accept-ranges
bytes
cf-ray
4ac3af21be2c97aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmWSvjKtjtHVS9NcUmwvNFyTFK1ks9HQLZyMmGHXDXivBH
cdn.javbros.com/ipfs/
45 KB
45 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmWSvjKtjtHVS9NcUmwvNFyTFK1ks9HQLZyMmGHXDXivBH
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
7e8687e3a69eef3219e4c7b881036aac42c6283a23f1bbc7864dcc3d63ad7547

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqhq6iymxspqbdbg3ibd6tewu6kz3vsl6kflpae7qu5ivgm4fkvcea
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
46105
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmWSvjKtjtHVS9NcUmwvNFyTFK1ks9HQLZyMmGHXDXivBH"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmWSvjKtjtHVS9NcUmwvNFyTFK1ks9HQLZyMmGHXDXivBH
accept-ranges
bytes
cf-ray
4ac3af21be3597aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmRt5YeTLCrrHFMSaNshuV9WNef7tcgG2WNzRBD5Fqxw3u
cdn.javbros.com/ipfs/
39 KB
39 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmRt5YeTLCrrHFMSaNshuV9WNef7tcgG2WNzRBD5Fqxw3u
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
2e0a83d71b1a11c67ae885b6e0f7d7f21de3740125a0df0893e1f97b725f7cd8

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqdjibge2v26zwnt7trbgfdokow6ek3lpw7rnjnxxe4szr6h4blhga
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
39857
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmRt5YeTLCrrHFMSaNshuV9WNef7tcgG2WNzRBD5Fqxw3u"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmRt5YeTLCrrHFMSaNshuV9WNef7tcgG2WNzRBD5Fqxw3u
accept-ranges
bytes
cf-ray
4ac3af21be3397aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmWM4NM7yWCHdZAFznckdSG3oouqkQ7s2JSe2APMHVjUkU
cdn.javbros.com/ipfs/
47 KB
48 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmWM4NM7yWCHdZAFznckdSG3oouqkQ7s2JSe2APMHVjUkU
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
ccea92c5f0ec72f396f7a21b3a8b73e9a1bd74dc13498e35d1d70f3cfd35e1c4

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqhn6b7ihtgudnkv5clcccb5sllgtdfkgkxk5yonwjbmcmto5tfd5i
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
48492
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmWM4NM7yWCHdZAFznckdSG3oouqkQ7s2JSe2APMHVjUkU"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmWM4NM7yWCHdZAFznckdSG3oouqkQ7s2JSe2APMHVjUkU
accept-ranges
bytes
cf-ray
4ac3af21ce3d97aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmbBgtRiyJSPYT3GJogy99iAL7jGQzs2PXMgDQcaAyMJfb
cdn.javbros.com/ipfs/
45 KB
45 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmbBgtRiyJSPYT3GJogy99iAL7jGQzs2PXMgDQcaAyMJfb
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
f985830729b657178083ea2a946a3b861ee3cc6cc9c27d8644d410f17bbcdd85

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciql5xbkkvgkckpcahxkd4tmdufh5ij76fpym7z4jubu4pxykzljuiq
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
45835
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmbBgtRiyJSPYT3GJogy99iAL7jGQzs2PXMgDQcaAyMJfb"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmbBgtRiyJSPYT3GJogy99iAL7jGQzs2PXMgDQcaAyMJfb
accept-ranges
bytes
cf-ray
4ac3af21ce4097aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmNt9oLZuf6CGHFN9dYFnCVeRgqkfhW3wkkKcvA71jUxZS
cdn.javbros.com/ipfs/
47 KB
47 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmNt9oLZuf6CGHFN9dYFnCVeRgqkfhW3wkkKcvA71jUxZS
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
30ae0fc4ff487133997e4771830f8f1fdb0ec5689ccd300c3488aebe4236e2f9

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqaqepfydpvtwfwd3ezxo7skc7k4tlxrw2lij4zxgtma73znpgdp3i
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
47792
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmNt9oLZuf6CGHFN9dYFnCVeRgqkfhW3wkkKcvA71jUxZS"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmNt9oLZuf6CGHFN9dYFnCVeRgqkfhW3wkkKcvA71jUxZS
accept-ranges
bytes
cf-ray
4ac3af21ce4197aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmSkRvoc8gsHpoA9kcLD4thjWEvkecrUeEHWPiMPDMVVQg
cdn.javbros.com/ipfs/
52 KB
52 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmSkRvoc8gsHpoA9kcLD4thjWEvkecrUeEHWPiMPDMVVQg
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
ec5727c69dff805edf4a8f5b4b716599ad93d834e0208c427cd2ca13da1439f1

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqedbr4jlmkgx7hbxtpqpak2bv2zl34wttz7vqoijvt52uz5ll753i
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
52890
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmSkRvoc8gsHpoA9kcLD4thjWEvkecrUeEHWPiMPDMVVQg"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmSkRvoc8gsHpoA9kcLD4thjWEvkecrUeEHWPiMPDMVVQg
accept-ranges
bytes
cf-ray
4ac3af21ce4397aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmPDMmw4Spb8xBd9XNk2BWG67wm9efMG5mCySbxV7xYfVZ
cdn.javbros.com/ipfs/
48 KB
48 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmPDMmw4Spb8xBd9XNk2BWG67wm9efMG5mCySbxV7xYfVZ
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
4a18fed2b4730dffd9cb88236fbc628b9c54f1eedd3ffa361e4e200f19094e80

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqaz7lzkelmulyucox6myb33hylxknoyg2mwfhfug7yb4y5pvagswa
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
49033
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmPDMmw4Spb8xBd9XNk2BWG67wm9efMG5mCySbxV7xYfVZ"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmPDMmw4Spb8xBd9XNk2BWG67wm9efMG5mCySbxV7xYfVZ
accept-ranges
bytes
cf-ray
4ac3af21ce4597aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmdggv2EmrPUTcUFXBUGM9P5QQDRhdj9gZWRPzSXgSvLQc
cdn.javbros.com/ipfs/
40 KB
40 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/Qmdggv2EmrPUTcUFXBUGM9P5QQDRhdj9gZWRPzSXgSvLQc
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
55faae84d639eb65bfebbbfe7f459a616d053f0a06ca478793c59a4b76502f97

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqoialj5uzfxv6bqae23jr2p6ktz7lpj2fintwftskt456hcqyzupi
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
40512
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"Qmdggv2EmrPUTcUFXBUGM9P5QQDRhdj9gZWRPzSXgSvLQc"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/Qmdggv2EmrPUTcUFXBUGM9P5QQDRhdj9gZWRPzSXgSvLQc
accept-ranges
bytes
cf-ray
4ac3af21ce4697aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qme1AsPWY37EwejLmYRjFKn7o3JA2F1puFHAwtygN9hFgX
cdn.javbros.com/ipfs/
39 KB
39 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/Qme1AsPWY37EwejLmYRjFKn7o3JA2F1puFHAwtygN9hFgX
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
fea84b91811d39a3cba7c081a715af6a5bce7aff4b95aaef3cfaecf4141d2c7a

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqorpl2bflvtb5xtujlghpvotqgkjhalwhzlcgprkbusg7dudo7rda
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
40068
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"Qme1AsPWY37EwejLmYRjFKn7o3JA2F1puFHAwtygN9hFgX"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/Qme1AsPWY37EwejLmYRjFKn7o3JA2F1puFHAwtygN9hFgX
accept-ranges
bytes
cf-ray
4ac3af21ce4797aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmahq65CMGqV1kjVeDGZGSZoQY9Tiipu9aAae5s8YWW9TP
cdn.javbros.com/ipfs/
42 KB
42 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/Qmahq65CMGqV1kjVeDGZGSZoQY9Tiipu9aAae5s8YWW9TP
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
61bd92f4d649f347ce7c95066a58856b777e0d971019fec7deeac73ee98f4bf3

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqlpojm4wgk6gae5r5gqtcwec2vnlgocrinxto77aifkho6mxbhteq
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
42754
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"Qmahq65CMGqV1kjVeDGZGSZoQY9Tiipu9aAae5s8YWW9TP"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/Qmahq65CMGqV1kjVeDGZGSZoQY9Tiipu9aAae5s8YWW9TP
accept-ranges
bytes
cf-ray
4ac3af21ce4997aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmXNga1fDNxAnSKS4U2pqGMhkzSB9aHF3wbvThE1iDNcJB
cdn.javbros.com/ipfs/
53 KB
54 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmXNga1fDNxAnSKS4U2pqGMhkzSB9aHF3wbvThE1iDNcJB
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
5a6cd1878bc556a56974c28c154ffe1bb3cc71162626cd7aa56a0de9aaeef958

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqimptssnu2wclc5gkdqfelhcodbnlg7lztuij4hep3amk5a732b6a
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
54592
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmXNga1fDNxAnSKS4U2pqGMhkzSB9aHF3wbvThE1iDNcJB"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmXNga1fDNxAnSKS4U2pqGMhkzSB9aHF3wbvThE1iDNcJB
accept-ranges
bytes
cf-ray
4ac3af21ce4c97aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmQwmyYT21vbnXuffd7wp99CXJVygJW8SFNgx7MgwZbKs9
cdn.javbros.com/ipfs/
41 KB
41 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmQwmyYT21vbnXuffd7wp99CXJVygJW8SFNgx7MgwZbKs9
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
4050f5219042f702ee52be5ec0d40fd71c2e0cd596257c220d850ff00107f799

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqcnnxlapdeae76rydpueck25k57qlhvnwdjael3y7xygfs3pvurna
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
41974
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmQwmyYT21vbnXuffd7wp99CXJVygJW8SFNgx7MgwZbKs9"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmQwmyYT21vbnXuffd7wp99CXJVygJW8SFNgx7MgwZbKs9
accept-ranges
bytes
cf-ray
4ac3af21ce4d97aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmSvJ1nHGWmwh94teZkrA9awLQwgnzuarBT5xmVuB5VuDH
cdn.javbros.com/ipfs/
49 KB
49 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmSvJ1nHGWmwh94teZkrA9awLQwgnzuarBT5xmVuB5VuDH
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
7df311bc1d28ac39497afdca42dd8b54374af6e96dc4d655f24db3731bca0d85

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqeidiykjywjlewfslfc725tbgdm4tl4kuy4hp5afibsijitmhuh6a
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
50133
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmSvJ1nHGWmwh94teZkrA9awLQwgnzuarBT5xmVuB5VuDH"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmSvJ1nHGWmwh94teZkrA9awLQwgnzuarBT5xmVuB5VuDH
accept-ranges
bytes
cf-ray
4ac3af21ce4e97aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmbBWLKorwDUZjyzLQVGg8ATqmoPKsZzidSKpcaca5LPR9
cdn.javbros.com/ipfs/
47 KB
47 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmbBWLKorwDUZjyzLQVGg8ATqmoPKsZzidSKpcaca5LPR9
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
10928be8a57d4f6cda357068b58945712dd65fc187388961fde9be8d319fd622

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciql5ub3qvj7ej6rymeqxtdn4lorjopctczp32u2u36yzwncr3myhka
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
47805
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmbBWLKorwDUZjyzLQVGg8ATqmoPKsZzidSKpcaca5LPR9"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmbBWLKorwDUZjyzLQVGg8ATqmoPKsZzidSKpcaca5LPR9
accept-ranges
bytes
cf-ray
4ac3af21ce5097aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmSJy25Yn1yTUTp2nGoheyoTyn9kWj8uQJMxtR5etrWnrM
cdn.javbros.com/ipfs/
41 KB
41 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmSJy25Yn1yTUTp2nGoheyoTyn9kWj8uQJMxtR5etrWnrM
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
864db74d10186351fa36c2679bd9d7e82882b605d165d5a967f9660f8fc09c2a

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqdwackaqsurwgxgi7vmt3tqriwxbfbrndswyy3vz7jsgvwptzggoq
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
41826
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmSJy25Yn1yTUTp2nGoheyoTyn9kWj8uQJMxtR5etrWnrM"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmSJy25Yn1yTUTp2nGoheyoTyn9kWj8uQJMxtR5etrWnrM
accept-ranges
bytes
cf-ray
4ac3af21ce5297aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmc6FjVz5Z93W9Zk1iQ3ZJt6MQKdPUFLCcivosUkjYHHG4
cdn.javbros.com/ipfs/
47 KB
47 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/Qmc6FjVz5Z93W9Zk1iQ3ZJt6MQKdPUFLCcivosUkjYHHG4
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
30754db5c66279afa9b086a62cb4278fa5a6c4dd1c966ca4ce1fb03ef0bfc45e

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqmyu4bwkzfavqilcpyb7l3cpyft4ecbbutp4xkhr2qr4bfstacxgi
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
48053
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"Qmc6FjVz5Z93W9Zk1iQ3ZJt6MQKdPUFLCcivosUkjYHHG4"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/Qmc6FjVz5Z93W9Zk1iQ3ZJt6MQKdPUFLCcivosUkjYHHG4
accept-ranges
bytes
cf-ray
4ac3af21ce5497aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmRgBcJRMZVrHTpJr9Tuo7QQMQdjuWYL4kf4ZRwD7hTyQV
cdn.javbros.com/ipfs/
50 KB
51 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmRgBcJRMZVrHTpJr9Tuo7QQMQdjuWYL4kf4ZRwD7hTyQV
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
3a6a3b097ee06240ad79584495f8c72c8ed85b7300c80bf96998dfb0e6fc8af3

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqddfai466kcyl5q55rebelgyqwed53jysacml7itf6zyhht3zv7aq
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
51296
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmRgBcJRMZVrHTpJr9Tuo7QQMQdjuWYL4kf4ZRwD7hTyQV"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmRgBcJRMZVrHTpJr9Tuo7QQMQdjuWYL4kf4ZRwD7hTyQV
accept-ranges
bytes
cf-ray
4ac3af21ce5597aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmaMiBMvzsCfpU3bZnyy94RHjvtzZ1bUwgBxYWwWxELiE2
cdn.javbros.com/ipfs/
43 KB
43 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmaMiBMvzsCfpU3bZnyy94RHjvtzZ1bUwgBxYWwWxELiE2
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
a150200d2a68e93af42da6b91311c6a297f8123c6491ec56e13269ed3a6f489f

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqlfen7kovomk662x7tpg243nufyso4otb2x4iy6h66vladetjashy
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
43869
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmaMiBMvzsCfpU3bZnyy94RHjvtzZ1bUwgBxYWwWxELiE2"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmaMiBMvzsCfpU3bZnyy94RHjvtzZ1bUwgBxYWwWxELiE2
accept-ranges
bytes
cf-ray
4ac3af21ce5697aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmeTSXovhSgjS1yyK56qzYVApeos4uPkMgVC2cd69kzUR3
cdn.javbros.com/ipfs/
51 KB
51 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmeTSXovhSgjS1yyK56qzYVApeos4uPkMgVC2cd69kzUR3
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
879862aafa69728bb2b97b10921cc3b3418f6de1903f3209fb5d2230bde77248

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqo66cjruaazcr5btyttcjcydiz6boxadubq32u567hvmc2aafsyfq
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
51900
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmeTSXovhSgjS1yyK56qzYVApeos4uPkMgVC2cd69kzUR3"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmeTSXovhSgjS1yyK56qzYVApeos4uPkMgVC2cd69kzUR3
accept-ranges
bytes
cf-ray
4ac3af21ce5797aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmbVL7sXorjFb7zhWvYaPN7kdUhT48UureeQa6UHssni6j
cdn.javbros.com/ipfs/
48 KB
48 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmbVL7sXorjFb7zhWvYaPN7kdUhT48UureeQa6UHssni6j
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
8246a6b22c0a49520ef5bfae8187814632e5b8394717bd21d0b0988e20878281

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqmgyjdenzu6jtgu63i4layohzygskft5eceyz5aph4p7bcavti36a
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
48985
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmbVL7sXorjFb7zhWvYaPN7kdUhT48UureeQa6UHssni6j"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmbVL7sXorjFb7zhWvYaPN7kdUhT48UureeQa6UHssni6j
accept-ranges
bytes
cf-ray
4ac3af21ce5897aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmUip65jR76TLD26HDvTf1N8pUV2rNdBE35etuYmethxmp
cdn.javbros.com/ipfs/
52 KB
52 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmUip65jR76TLD26HDvTf1N8pUV2rNdBE35etuYmethxmp
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
442b47d8c368cf231b227c2901a62b198e9fa4c9f81cf56761e6f7825bbc44cd

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqf5u4bbudrncdvgryxkionsoiaaocszz7vm65opn43o7hoafwxx4y
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
53229
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmUip65jR76TLD26HDvTf1N8pUV2rNdBE35etuYmethxmp"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmUip65jR76TLD26HDvTf1N8pUV2rNdBE35etuYmethxmp
accept-ranges
bytes
cf-ray
4ac3af21ce5997aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmXJUee6xvgNocUNRGvr4QE9sDYQtP2a9MJ9rGYEFkpqpu
cdn.javbros.com/ipfs/
53 KB
53 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmXJUee6xvgNocUNRGvr4QE9sDYQtP2a9MJ9rGYEFkpqpu
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
12623a1afe42085bbacafcda43dfd738378d3c197423aa770e4a73a32ca14915

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqikkvfm6g2octyugb4z5x24xujdbk2clpis6ighr3y3uexb3izoiq
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
54304
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmXJUee6xvgNocUNRGvr4QE9sDYQtP2a9MJ9rGYEFkpqpu"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmXJUee6xvgNocUNRGvr4QE9sDYQtP2a9MJ9rGYEFkpqpu
accept-ranges
bytes
cf-ray
4ac3af21ce5a97aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmReS9DPPUyqFV52MQcS3oB1k7vaRjYrqqyPbdJKLC6Xcy
cdn.javbros.com/ipfs/
46 KB
47 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmReS9DPPUyqFV52MQcS3oB1k7vaRjYrqqyPbdJKLC6Xcy
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
b8a3b52eb6e493c068b109d2e2369b0b22e50f65863a96b05ef449c596bc7255

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqdcikoibaobcyka5yavi4spwbzj72df6lwhxbgbqm727sd4javfnq
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
47397
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmReS9DPPUyqFV52MQcS3oB1k7vaRjYrqqyPbdJKLC6Xcy"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmReS9DPPUyqFV52MQcS3oB1k7vaRjYrqqyPbdJKLC6Xcy
accept-ranges
bytes
cf-ray
4ac3af21ce5b97aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmQqYwdnnBff9SAK3Lox7TGE9Qhj6pSNBy7jceH8YPY25p
cdn.javbros.com/ipfs/
44 KB
44 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmQqYwdnnBff9SAK3Lox7TGE9Qhj6pSNBy7jceH8YPY25p
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
768eb3740e2adbfd617752c0bdc347f6362a2c8b42c276c4547ace8c2c2f93be

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqckhvsmn4zgqyorlqfvz2q645v6pytymg5d5l7csi6b6oh24slley
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
44754
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmQqYwdnnBff9SAK3Lox7TGE9Qhj6pSNBy7jceH8YPY25p"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmQqYwdnnBff9SAK3Lox7TGE9Qhj6pSNBy7jceH8YPY25p
accept-ranges
bytes
cf-ray
4ac3af21ce5c97aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmbJ75EVBpBr2EVfeAiGqBkStBRg1fehupEE54shua9iWG
cdn.javbros.com/ipfs/
45 KB
45 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmbJ75EVBpBr2EVfeAiGqBkStBRg1fehupEE54shua9iWG
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
e077b567de9e99e405f8462f184797c410453c3af0060209b8a4521712f1a9df

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqmbah7nx3bxbwcle4rxdvfx7acaqs2yh4pfl72qterscybmfyyini
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
46127
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmbJ75EVBpBr2EVfeAiGqBkStBRg1fehupEE54shua9iWG"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmbJ75EVBpBr2EVfeAiGqBkStBRg1fehupEE54shua9iWG
accept-ranges
bytes
cf-ray
4ac3af21ce5d97aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmcicJ4tKhqhx9vmVdg5z41pX9B9KMnE5KiqSgLn5p6Q5U
cdn.javbros.com/ipfs/
55 KB
56 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmcicJ4tKhqhx9vmVdg5z41pX9B9KMnE5KiqSgLn5p6Q5U
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
e0d7a01cf96c53584a2ca3722ae972ea9c17d3ebdba525323397d958f73f0268

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqnli5kfoeks5bvrzcmybe2krjo34tkneap22c47his3i7o2xuaqny
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
56602
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmcicJ4tKhqhx9vmVdg5z41pX9B9KMnE5KiqSgLn5p6Q5U"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmcicJ4tKhqhx9vmVdg5z41pX9B9KMnE5KiqSgLn5p6Q5U
accept-ranges
bytes
cf-ray
4ac3af21ce5e97aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmX7vFFEjuhwGnz54C7KALLc4dv26xUCt1NjRbU9o9zXFo
cdn.javbros.com/ipfs/
49 KB
50 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmX7vFFEjuhwGnz54C7KALLc4dv26xUCt1NjRbU9o9zXFo
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
0718041c8281b5aeff2a35b21ff3059aee7863477cc36d476c68d8b6338e3ae6

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqie5rtbzhxy7xulutuidykt7f4mktwap7vlbqapgijsbldzejzwoq
x-ipfs-gateway-host
cdn-bank2-fra1
content-length
50578
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmX7vFFEjuhwGnz54C7KALLc4dv26xUCt1NjRbU9o9zXFo"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank2-fra1
access-control-allow-methods
GET, GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmX7vFFEjuhwGnz54C7KALLc4dv26xUCt1NjRbU9o9zXFo
accept-ranges
bytes
cf-ray
4ac3af21ce6097aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmatBbtGkib5Z2d93YLoAP39vnN5QCae8iNHzbrA2GoQTX
cdn.javbros.com/ipfs/
41 KB
41 KB
Image
General
Full URL
https://cdn.javbros.com/ipfs/QmatBbtGkib5Z2d93YLoAP39vnN5QCae8iNHzbrA2GoQTX
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700:30::6818:6611 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
7dda91eba7d69c553238bc7d3cb651d3eb8b20b0fb3090c4efe88e5fc76606b9

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
status
200
suborigin
ipfs000bciqluybnybfomnnpmm3tqmcravyfrib62ew47z6rancj3gu3vied7pq
x-ipfs-gateway-host
cdn-bank1-fra1
content-length
42160
last-modified
Thu, 01 Jan 1970 00:00:01 GMT
server
cloudflare
etag
"QmatBbtGkib5Z2d93YLoAP39vnN5QCae8iNHzbrA2GoQTX"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
x-ipfs-pop
cdn-bank1-fra1
access-control-allow-methods
GET, POST, OPTIONS
content-type
image/jpeg
access-control-allow-origin
*
access-control-expose-headers
Content-Range, X-Chunked-Output, X-Stream-Output
cache-control
public, max-age=29030400, immutable
x-ipfs-path
/ipfs/QmatBbtGkib5Z2d93YLoAP39vnN5QCae8iNHzbrA2GoQTX
accept-ranges
bytes
cf-ray
4ac3af21ce6197aa-FRA
access-control-allow-headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
jquery.min.js
ajax.googleapis.com/ajax/libs/jquery/3.1.1/
85 KB
30 KB
Script
General
Full URL
https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
2a00:1450:4001:806::200a , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
sffe /
Resource Hash
85556761a8800d14ced8fcd41a6b8b26bf012d44a318866c0d81a62092efd9bf
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/
Origin
http://www.javbros.com

Response headers

date
Fri, 25 Jan 2019 23:29:30 GMT
content-encoding
gzip
x-content-type-options
nosniff
age
2235163
status
200
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
content-length
30244
x-xss-protection
1; mode=block
last-modified
Tue, 20 Dec 2016 18:17:03 GMT
server
sffe
vary
Accept-Encoding
content-type
text/javascript; charset=UTF-8
access-control-allow-origin
*
cache-control
public, max-age=31536000, stale-while-revalidate=2592000
accept-ranges
bytes
timing-allow-origin
*
expires
Sat, 25 Jan 2020 23:29:30 GMT
tether.min.js
cdnjs.cloudflare.com/ajax/libs/tether/1.3.7/js/
24 KB
7 KB
Script
General
Full URL
https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.7/js/tether.min.js
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700::6813:c397 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
ff9a470d98767efd5e6489b27e24e1b41e408382ea0e3ca2b6d4fb7cb8dd4fff
Security Headers
Name Value
Strict-Transport-Security max-age=15780000; includeSubDomains

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/
Origin
http://www.javbros.com

Response headers

date
Wed, 20 Feb 2019 20:22:13 GMT
content-encoding
br
cf-cache-status
HIT
status
200
strict-transport-security
max-age=15780000; includeSubDomains
last-modified
Thu, 17 May 2018 09:25:49 GMT
server
cloudflare
etag
W/"5afd4a9d-6144"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
vary
Accept-Encoding
content-type
application/javascript
access-control-allow-origin
*
expires
Mon, 10 Feb 2020 20:22:13 GMT
cache-control
public, max-age=30672000
cf-ray
4ac3af210ca2c2d3-FRA
served-in-seconds
0.000
bootstrap.min.js
maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/js/
44 KB
12 KB
Script
General
Full URL
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/js/bootstrap.min.js
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
8fe5ebbe44388c9f7d1e3d2924a3ebea4d110a0c430d24ecdcf06a2eb5f610c7

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/
Origin
http://www.javbros.com

Response headers

date
Wed, 20 Feb 2019 20:22:13 GMT
content-encoding
gzip
last-modified
Wed, 12 Dec 2018 18:33:52 GMT
access-control-allow-origin
*
etag
"1544639632"
vary
Accept-Encoding
x-cache
HIT
content-type
text/javascript; charset=utf-8
status
200
cache-control
public, max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
timing-allow-origin
*
content-length
11690
pop.js
cdn.popcash.net/
64 KB
26 KB
Script
General
Full URL
http://cdn.popcash.net/pop.js
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
HTTP/1.1
Server
94.31.29.128 , United Kingdom, ASN12989 (HWNG, NL),
Reverse DNS
94.31.29.128.IPYX-077437-ZYO.above.net
Software
NetDNA-cache/2.2 /
Resource Hash
b4221c88c806b7201fef40ea006fde86282b2a93a1be048dcfd45b5b1f736160

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 20 Feb 2019 20:22:13 GMT
Content-Encoding
gzip
Last-Modified
Tue, 04 Dec 2018 13:11:11 GMT
Server
NetDNA-cache/2.2
ETag
W/"5c067cef-10155"
Vary
Accept-Encoding
X-Cache
HIT
Content-Type
application/javascript
Cache-Control
max-age=86400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
483e88b704e8c297-FRA
Expires
Thu, 21 Feb 2019 20:22:13 GMT
crypta.js
gitgrub.pro/lib/
0
0

js
ca.clcknads.pro/v1/a/23282/
20 KB
7 KB
Script
General
Full URL
http://ca.clcknads.pro/v1/a/23282/js
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
6f77cc899809f9ccd971cc0520cdf0ca669240bf5e807c31b6125efc5110e090

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
23281
ca.clcknads.pro/v1/apop/js/zone/
87 KB
37 KB
Script
General
Full URL
http://ca.clcknads.pro/v1/apop/js/zone/23281
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
f0a540a3f8a5afa4cf4e717a16b07d83e3a5d225450cb1b453eebf313073df37

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
analytics.js
www.google-analytics.com/
43 KB
17 KB
Script
General
Full URL
https://www.google-analytics.com/analytics.js
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:809::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
3e552578c7d450b023f2cd9d28f830be4335c3acc6c4ab6dadda0769f09e5f22
Security Headers
Name Value
Strict-Transport-Security max-age=10886400; includeSubDomains; preload
X-Content-Type-Options nosniff

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

strict-transport-security
max-age=10886400; includeSubDomains; preload
content-encoding
gzip
x-content-type-options
nosniff
last-modified
Wed, 16 Jan 2019 20:01:45 GMT
server
Golfe2
age
5585
date
Wed, 20 Feb 2019 18:49:08 GMT
vary
Accept-Encoding
content-type
text/javascript
status
200
cache-control
public, max-age=7200
timing-allow-origin
*
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
content-length
17543
expires
Wed, 20 Feb 2019 20:49:08 GMT
ionicons.ttf
code.ionicframework.com/ionicons/2.0.1/fonts/
184 KB
107 KB
Font
General
Full URL
http://code.ionicframework.com/ionicons/2.0.1/fonts/ionicons.ttf?v=2.0.1
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
HTTP/1.1
Server
2606:4700:20::6819:7b63 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
5e700835ec05293a3d0f9e354e7d038319d34521cd279e782198dff6d1dd58f2

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css
Origin
http://www.javbros.com

Response headers

X-Fastly-Request-ID
d7c91001e7c1feed865b225f9c2409ac6df1b566
Date
Wed, 20 Feb 2019 20:22:13 GMT
Via
1.1 varnish
CF-Cache-Status
MISS
Transfer-Encoding
chunked
X-Cache
HIT
Connection
keep-alive
Content-Encoding
gzip
X-Served-By
cache-hhn1531-HHN
Last-Modified
Mon, 04 Feb 2019 22:08:34 GMT
Server
cloudflare
X-GitHub-Request-Id
5DBA:2B96:B1233:E4E2E:5C676EEE
X-Timer
S1550694134.973073,VS0,VE0
ETag
W/"5c58b7e2-2e05c"
Vary
Accept-Encoding
Content-Type
font/ttf
Access-Control-Allow-Origin
*
Expires
Wed, 20 Feb 2019 22:22:13 GMT
Cache-Control
public, max-age=7200
CF-RAY
4ac3af2145589732-FRA
X-Cache-Hits
67
collect
www.google-analytics.com/r/
35 B
101 B
Image
General
Full URL
https://www.google-analytics.com/r/collect?v=1&_v=j73&a=1963150909&t=pageview&_s=1&dl=http%3A%2F%2Fwww.javbros.com%2F&ul=en-us&de=UTF-8&dt=JAV%20BROS%20%7C%20%E4%B8%BB%E9%A0%81&sd=24-bit&sr=1600x1200&vp=1600x1200&je=0&_u=IEBAAEAB~&jid=1888690394&gjid=1957335778&cid=134405316.1550694134&tid=UA-91041076-1&_gid=1645586972.1550694134&_r=1&z=1046061426
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
2a00:1450:4001:809::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

pragma
no-cache
date
Wed, 20 Feb 2019 20:22:14 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
access-control-allow-origin
*
content-type
image/gif
status
200
cache-control
no-cache, no-store, must-revalidate
alt-svc
quic=":443"; ma=2592000; v="44,43,39"
content-length
35
expires
Fri, 01 Jan 1990 00:00:00 GMT
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame BABC
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430213&type=728x90&p=http%3A//www.javbros.com/&dt=1550694134257&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.245 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.javbros.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/

Response headers

Server
nginx
Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225c6db6f647c1a4.85993832503427649%22%3B%7D; expires=Fri, 19-Feb-2021 20:22:14 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B4%AA%CE%B42%B206507%B1N%B42%06q%0D%AC3%AD%0Ca%D8%D4%D4%C0%CC%D2%C4%D0%D8%04%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F9h%0F%CD; expires=Thu, 21-Feb-2019 20:22:14 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame E9DA
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430249&type=315x300&p=http%3A//www.javbros.com/&dt=1550694134259&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.245 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.javbros.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/

Response headers

Server
nginx
Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; expires=Fri, 19-Feb-2021 20:22:14 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C5%C7%BB%15%00%10%10%04%C0%5ETp%9F%E5%B1W%8DP%2C%F4%F4%8E%400%C1t%2A%D7%A0%95Z%CD%5Bt%FA%AB%C4%A0%7E9KiP%C7%8D%C5%24%98%14%90%14%7B%1F%FB4%0F%D6; expires=Thu, 21-Feb-2019 20:22:14 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 977E
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430217&type=728x90&p=http%3A//www.javbros.com/&dt=1550694134308&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.245 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.javbros.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/

Response headers

Server
nginx
Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f655a2f0.308979152268103830%22%3B%7D; expires=Fri, 19-Feb-2021 20:22:14 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B4%AA%CE%B42%B206507%B1N%B42%06q%0D%AC3%AD%0Ca%D8%D4%D4%C0%CC%D2%C4%D0%D8%04%C81%B2.%B62%B1R2411P%B2%AE%AD%05%00%F9h%0F%CD; expires=Thu, 21-Feb-2019 20:22:14 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 421C
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430251&type=315x300&p=http%3A//www.javbros.com/&dt=1550694134309&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.javbros.com/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/

Response headers

Server
nginx
Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f65c9c14.677165321446531145%22%3B%7D; expires=Fri, 19-Feb-2021 20:22:14 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C5%C7%BB%15%00%10%10%04%C0%5ETp%9F%E5%B1W%8DP%2C%F4%F4%8E%400%C1t%2A%D7%A0%95Z%CD%5Bt%FA%AB%C4%A0%7E9KiP%C7%8D%C5%24%98%14%90%14%7B%1F%FB4%0F%D6; expires=Thu, 21-Feb-2019 20:22:14 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 28F2
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430207&type=300x250&p=http%3A//www.javbros.com/&dt=1550694134311&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.javbros.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; impressions=x%9C5%C7%BB%15%00%10%10%04%C0%5ETp%9F%E5%B1W%8DP%2C%F4%F4%8E%400%C1t%2A%D7%A0%95Z%CD%5Bt%FA%AB%C4%A0%7E9KiP%C7%8D%C5%24%98%14%90%14%7B%1F%FB4%0F%D6
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/

Response headers

Server
nginx
Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; expires=Fri, 19-Feb-2021 20:22:14 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C%8D%CB%AB%15%00%21%0C%05%D1%5ERA%7E%10x%A9%06%89F%EE%A1%F7%05%B1%7E%C5%88%2Bf%40%F1LhmM%AD%E7%80%5DrN%C8W%29%5C%BB%8B%F9%81%E6%82%83%C4%9D%29%F7qDa%D6_%9F%81B%EF%B6_%D7%D7%1Dn; expires=Thu, 21-Feb-2019 20:22:14 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 7187
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430209&type=300x250&p=http%3A//www.javbros.com/&dt=1550694134317&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.javbros.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; impressions=x%9C5%C7%BB%15%00%10%10%04%C0%5ETp%9F%E5%B1W%8DP%2C%F4%F4%8E%400%C1t%2A%D7%A0%95Z%CD%5Bt%FA%AB%C4%A0%7E9KiP%C7%8D%C5%24%98%14%90%14%7B%1F%FB4%0F%D6
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/

Response headers

Server
nginx
Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; expires=Fri, 19-Feb-2021 20:22:14 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C%8D%CB%AB%15%00%21%0C%05%D1%5ERA%7E%10x%A9%06%89F%EE%A1%F7%05%B1%7E%C5%88%2Bf%40%F1LhmM%AD%E7%80%5DrN%C8W%29%5C%BB%8B%F9%81%E6%82%83%C4%9D%29%F7qDa%D6_%9F%81B%EF%B6_%D7%D7%1Dn; expires=Thu, 21-Feb-2019 20:22:14 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame E821
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430211&type=300x250&p=http%3A//www.javbros.com/&dt=1550694134321&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.245 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.javbros.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; impressions=x%9C5%C7%BB%15%00%10%10%04%C0%5ETp%9F%E5%B1W%8DP%2C%F4%F4%8E%400%C1t%2A%D7%A0%95Z%CD%5Bt%FA%AB%C4%A0%7E9KiP%C7%8D%C5%24%98%14%90%14%7B%1F%FB4%0F%D6
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/

Response headers

Server
nginx
Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; expires=Fri, 19-Feb-2021 20:22:14 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C%8D%CB%AB%15%00%21%0C%05%D1%5ERA%7E%10x%A9%06%89F%EE%A1%F7%05%B1%7E%C5%88%2Bf%40%F1LhmM%AD%E7%80%5DrN%C8W%29%5C%BB%8B%F9%81%E6%82%83%C4%9D%29%F7qDa%D6_%9F%81B%EF%B6_%D7%D7%1Dn; expires=Thu, 21-Feb-2019 20:22:14 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 6B6C
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430225&type=300x100&p=http%3A//www.javbros.com/&dt=1550694134326&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.javbros.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; impressions=x%9C5%C7%BB%15%00%10%10%04%C0%5ETp%9F%E5%B1W%8DP%2C%F4%F4%8E%400%C1t%2A%D7%A0%95Z%CD%5Bt%FA%AB%C4%A0%7E9KiP%C7%8D%C5%24%98%14%90%14%7B%1F%FB4%0F%D6
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/

Response headers

Server
nginx
Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; expires=Fri, 19-Feb-2021 20:22:14 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B2%AA%CE%B422%B3%B002%B6%B4N%B42%06q%0D%AC3%AD%0Ca%D8%D4%D4%C0%CC%D2%C4%D0%D8%04%C81%B2.%B62%B1R2411P%B2%AE%05%F2M%0C%2C%CD%8D%0DH%D4W%0B%00%F53%1D%A1; expires=Thu, 21-Feb-2019 20:22:14 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 9628
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430231&type=300x100&p=http%3A//www.javbros.com/&dt=1550694134330&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.javbros.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; impressions=x%9C5%C7%BB%15%00%10%10%04%C0%5ETp%9F%E5%B1W%8DP%2C%F4%F4%8E%400%C1t%2A%D7%A0%95Z%CD%5Bt%FA%AB%C4%A0%7E9KiP%C7%8D%C5%24%98%14%90%14%7B%1F%FB4%0F%D6
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/

Response headers

Server
nginx
Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; expires=Fri, 19-Feb-2021 20:22:14 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B2%AA%CE%B422%B3%B002%B6%B4N%B42%06q%0D%AC3%AD%0Ca%D8%D4%D4%C0%CC%D2%C4%D0%D8%04%C81%B2.%B62%B1R2411P%B2%AE%05%F2M%0C%2C%CD%8D%0DH%D4W%0B%00%F53%1D%A1; expires=Thu, 21-Feb-2019 20:22:14 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame D37C
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2430235&type=300x100&p=http%3A//www.javbros.com/&dt=1550694134334&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.246 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer
http://www.javbros.com/
Accept-Encoding
gzip, deflate
Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; impressions=x%9C5%C7%BB%15%00%10%10%04%C0%5ETp%9F%E5%B1W%8DP%2C%F4%F4%8E%400%C1t%2A%D7%A0%95Z%CD%5Bt%FA%AB%C4%A0%7E9KiP%C7%8D%C5%24%98%14%90%14%7B%1F%FB4%0F%D6
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/

Response headers

Server
nginx
Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D; expires=Fri, 19-Feb-2021 20:22:14 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9CK%B42%B2%AA%CE%B422%B3%B002%B6%B4N%B42%06q%0D%AC3%AD%0Ca%D8%D4%D4%C0%CC%D2%C4%D0%D8%04%C81%B2.%B62%B1R2411P%B2%AE%05%F2M%0C%2C%CD%8D%0DH%D4W%0B%00%F53%1D%A1; expires=Thu, 21-Feb-2019 20:22:14 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
pop.js
c1.popads.net/
28 KB
9 KB
Script
General
Full URL
http://c1.popads.net/pop.js
Requested by
Host: www.javbros.com
URL: http://www.javbros.com/
Protocol
HTTP/1.1
Server
185.59.220.22 Frankfurt, Germany, ASN60068 (CDN77, GB),
Reverse DNS
frankfurt-20.cdn77.com
Software
CDN77-Turbo /
Resource Hash
74813c68caf1885a5c65b3ad2e5d15f55547ceb0dbec592bf89076441c065065

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Encoding
gzip
Last-Modified
Sun, 17 Feb 2019 22:53:44 GMT
Server
CDN77-Turbo
X-Edge-Location
frankfurtDE
ETag
W/"5c69e5f8-6ead"
Transfer-Encoding
chunked
X-Cache
HIT
Content-Type
application/javascript
Access-Control-Allow-Origin
*
X-Edge-IP
185.59.220.20
Connection
keep-alive
X-Age
5271
znWaa3gu
dcba.popcash.net/
0
117 B
XHR
General
Full URL
https://dcba.popcash.net/znWaa3gu
Requested by
Host: cdn.popcash.net
URL: http://cdn.popcash.net/pop.js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
34.196.182.1 Ashburn, United States, ASN14618 (AMAZON-AES - Amazon.com, Inc., US),
Reverse DNS
ec2-34-196-182-1.compute-1.amazonaws.com
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/
Origin
http://www.javbros.com

Response headers

status
204
pragma
no-cache
date
Wed, 20 Feb 2019 20:22:14 GMT
cache-control
no-cache, no-store, must-revalidate
access-control-allow-origin
*
expires
0
blank
ca.clcknads.pro/
0
183 B
XHR
General
Full URL
https://ca.clcknads.pro/blank
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23282/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/
Origin
http://www.javbros.com

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
referrer-policy
unsafe-url
server
nginx
status
200
access-control-max-age
86400
content-type
text/html; charset=UTF-8
access-control-allow-origin
http://www.javbros.com
access-control-allow-credentials
true
content-length
0
blank
ca.clcknads.pro/
0
183 B
XHR
General
Full URL
https://ca.clcknads.pro/blank
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/apop/js/zone/23281
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/
Origin
http://www.javbros.com

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
referrer-policy
unsafe-url
server
nginx
status
200
access-control-max-age
86400
content-type
text/html; charset=UTF-8
access-control-allow-origin
http://www.javbros.com
access-control-allow-credentials
true
content-length
0
truncated
/
64 KB
0
Script
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
7610427384ed1396a9b550db4e271bb995dc5d1816b081135a1f8cf2f25bbc6b

Request headers

Response headers

Content-Type
text/plain
truncated
/
4 KB
0
Media
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
a27edba0e34b2648a90a800ae94fdef3e39016d1b9bd6e54a31ede1f1cddfed0

Request headers

Response headers

Content-Type
video/mp4
/
c.adsco.re/
5 B
404 B
Script
General
Full URL
http://c.adsco.re/
Requested by
Host: c1.popads.net
URL: http://c1.popads.net/pop.js
Protocol
HTTP/1.1
Server
2606:4700::6811:a6ba , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
a6bdfcd47d10e9491b11ac64c8000b525b1dfb3d7590668bc4637f05a50f183b

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 20 Feb 2019 20:22:14 GMT
Server
cloudflare
Vary
Accept-Encoding
Content-Type
text/plain;charset=UTF-8
Cache-Control
max-age=259200,public,immutable
Connection
keep-alive
CF-RAY
4ac3af255879c2c9-FRA
Content-Length
5
23282
ca.clcknads.pro/v2/a/vsl/vst/
4 KB
2 KB
XHR
General
Full URL
http://ca.clcknads.pro/v2/a/vsl/vst/23282?subId=&playerWidth=426&playerHeight=239&pageUri=http%3A%2F%2Fwww.javbros.com%2F&referer=&wgl=0&abl=0
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23282/js
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
ec98e93bb75756d9635754bbf234d67e865e09bd3278d548fdf6489a9c446862

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/
Origin
http://www.javbros.com

Response headers

Date
Wed, 20 Feb 2019 20:22:14 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/xml; charset=UTF-8
Access-Control-Allow-Origin
http://www.javbros.com
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
34489
ca.clcknads.pro/v2/a/prl/vst/
4 KB
2 KB
XHR
General
Full URL
https://ca.clcknads.pro/v2/a/prl/vst/34489
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23282/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
be2bd40335d537208ea814ac3ee2e1c8d3c4b9641be32936ae2b24451ddf04d9

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/
Origin
http://www.javbros.com

Response headers

pragma
no-cache
date
Wed, 20 Feb 2019 20:22:14 GMT
content-encoding
gzip
referrer-policy
unsafe-url
last-modified
Wed, 20 Feb 2019 20:22:14 UTC
server
nginx
status
200
vary
Accept-Encoding
p3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
access-control-allow-origin
http://www.javbros.com
access-control-max-age
86400
cache-control
private, no-cache, no-store, must-revalidate, max-age=0
access-control-allow-credentials
true
content-type
application/xml; charset=UTF-8
expires
Wed, 20 Feb 2019 20:22:14 UTC
preroll.engine
engine.phn.doublepimp.com/
11 KB
2 KB
XHR
General
Full URL
https://engine.phn.doublepimp.com/preroll.engine?id=53c5af00-3108-4022-a970-db684ec03f8e&zid=10060&pageurl=&subId=79690&pw=0&ph=0
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23282/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
69.89.69.120 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
3e86793cf6bf340804d682297f9d55ac54f98ac184c6ab1af7f581d6fe2ae814

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javbros.com/
Origin
http://www.javbros.com

Response headers

date
Wed, 20 Feb 2019 20:22:14 GMT
content-encoding
gzip
server
Microsoft-IIS/10.0
status
200
x-powered-by
ASP.NET
vary
Accept-Encoding
p3p
CP="CAO PSA OUR IND"
access-control-allow-origin
http://www.javbros.com
cache-control
private
access-control-allow-credentials
true
content-type
text/xml; charset=utf-8
content-length
2334
c
serve.popads.net/
44 B
259 B
Script
General
Full URL
http://serve.popads.net/c?_=1550694134&v=4&siteId=1777425&minBid=&popundersPerIP=&blockedCountries=&documentRef=&s=1600,1200,1,1600,1200
Requested by
Host: c1.popads.net
URL: http://c1.popads.net/pop.js
Protocol
HTTP/1.1
Server
216.21.13.17 , United States, ASN53334 (TUT-AS - Total Uptime Technologies, LLC, US),
Reverse DNS
Software
/
Resource Hash
9d781128a8ece413b003d5612b8398bf9340ef7f5b751d12bd125ba523d3ceb5

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Access-Control-Allow-Origin
*
Date
Wed, 20 Feb 2019 20:22:14 GMT
PopAds-EC
ASM
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
44
Content-Type
text/javascript;charset=UTF-8
m45777_480x270_AACAudio_720.mp4
doublepimpads.com/asset-68c150ad-f2c6-46f1-b790-8c2dcad4fab1/
132 KB
0
Media
General
Full URL
http://doublepimpads.com/asset-68c150ad-f2c6-46f1-b790-8c2dcad4fab1/m45777_480x270_AACAudio_720.mp4?sv=2017-04-17&sr=c&si=77eae9c2-b943-4b60-8929-f2db2af81b49&sig=pawA8XPgtadcRtQJ7OgKrPl5U7U7ZpheSsYsZbI4vJ4%3D&se=3018-04-22T21%3A20%3A37Z
Protocol
HTTP/1.1
Server
2606:4700::6811:5d1e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash

Request headers

Referer
http://www.javbros.com/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=0-
chrome-proxy
frfr

Response headers

x-ms-blob-type
BlockBlob
Date
Wed, 20 Feb 2019 20:22:15 GMT
Via
1.1 147e057d2f96cf5a0082d96978e38a5b.cloudfront.net (CloudFront)
CF-Cache-Status
HIT
Content-MD5
OWlxGvBguzvcsl3SRftHGQ==
x-ms-server-encrypted
true
X-Cache
Hit from cloudfront
Content-Range
bytes 0-3277302/3277303
Connection
keep-alive
Content-Length
3277303
x-ms-lease-state
available
x-ms-lease-status
unlocked
Last-Modified
Thu, 20 Dec 2018 21:20:28 GMT
Server
cloudflare
ETag
"0x8D666C0F6EC350B"
Vary
Accept-Encoding
Content-Type
video/mp4
x-ms-request-id
32a83caa-701e-011b-4ebf-98e978000000
Cache-Control
public, max-age=14400
x-ms-version
2017-04-17
CF-RAY
4ac3af291f6797c2-FRA
X-Amz-Cf-Id
CQFJH3OvNGTsYLRInCmR0kKvG6DshP7qFBbRYXbrKdmK66DwPiL4-w==
Expires
Thu, 21 Feb 2019 00:22:15 GMT
truncated
/
2 KB
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627

Request headers

Response headers

Content-Type
image/png
truncated
/
715 B
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd

Request headers

Response headers

Content-Type
image/png
m45777_480x270_AACAudio_720.mp4
doublepimpads.com/asset-68c150ad-f2c6-46f1-b790-8c2dcad4fab1/
200 KB
0
Media
General
Full URL
http://doublepimpads.com/asset-68c150ad-f2c6-46f1-b790-8c2dcad4fab1/m45777_480x270_AACAudio_720.mp4?sv=2017-04-17&sr=c&si=77eae9c2-b943-4b60-8929-f2db2af81b49&sig=pawA8XPgtadcRtQJ7OgKrPl5U7U7ZpheSsYsZbI4vJ4%3D&se=3018-04-22T21%3A20%3A37Z
Protocol
HTTP/1.1
Server
2606:4700::6811:5c1e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash

Request headers

Referer
http://www.javbros.com/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=131072-

Response headers

x-ms-blob-type
BlockBlob
Date
Wed, 20 Feb 2019 20:22:15 GMT
Via
1.1 147e057d2f96cf5a0082d96978e38a5b.cloudfront.net (CloudFront)
CF-Cache-Status
HIT
Content-MD5
OWlxGvBguzvcsl3SRftHGQ==
x-ms-server-encrypted
true
X-Cache
Hit from cloudfront
Content-Range
bytes 131072-3277302/3277303
Connection
keep-alive
Content-Length
3146231
x-ms-lease-state
available
x-ms-lease-status
unlocked
Last-Modified
Thu, 20 Dec 2018 21:20:28 GMT
Server
cloudflare
ETag
"0x8D666C0F6EC350B"
Vary
Accept-Encoding
Content-Type
video/mp4
x-ms-request-id
32a83caa-701e-011b-4ebf-98e978000000
Cache-Control
public, max-age=14400
x-ms-version
2017-04-17
CF-RAY
4ac3af295c8abec1-FRA
X-Amz-Cf-Id
CQFJH3OvNGTsYLRInCmR0kKvG6DshP7qFBbRYXbrKdmK66DwPiL4-w==
Expires
Thu, 21 Feb 2019 00:22:15 GMT
track.engine
engine.phn.doublepimp.com/
0
3 KB
Image
General
Full URL
http://engine.phn.doublepimp.com/track.engine?dcid=3_ctx_ea14b171-cfd7-48da-99e7-08969392f0d9&evt=3&evtData=%7b%22am%22%3anull%2c%22EventType%22%3a3%2c%22v2%22%3anull%2c%22v%22%3a%229axfVFjfih-1XK-K0ZbT3Cji5n5z4X04XMWSdSg57ez53d8UhDQRKHZUBwOrKCLCXbMDsG6R5rpzk9OwOjaN-4S_yNIq2309EOqOBD_qxBrpA61fVVoxHPZZD-KteM08nhDQHNPEG1KlcSEZnoX1Cz1Z-WrjQmVy52uu5Tc3-jJ6viRGPtwXXj1o2wRSkypO6Ldk9pulJl1ZYpjFlDuCmiqsppovqf5lRfNjIf4CMErVP0LIfCkaED0GrBRvkKFQQyzmpvYiXfK0os1tk-BnMmvZ1CkDeCsWs3VCKADP6Trya9tpSWo6ik7DF3J6R6NbyfgEUcq0phbnJDrGaPhctOomkv8iRKMS_euIMdsErPDFdDVqZG9xm_-6TVIvsoyDU9cOEjo3DY2bX1yHj1mkaYHWbTuB7e6ecH43ycsqWaS5KOZp7AXNViY4ucNhtILQoRkqMawBraC12q2da_76V-JnN495L3N6yqDTlyQlQjDqlkFO4kKQeBl1BkaxpJZJBNlAe8ij55rMb2wP328ig8M8pPXn2x5i3PD-n8Nx3loDM47vl60sPSqmuyOmZoVNOq2hyXIOqbTKVSMZIaOgQ2jynntWb8P4msSv0fOKKbIB5Zrn1uhTnXR1XtXvJgd7eiVxdM9LcTRTGdkmaj7mOKfb4E8V1R9mzQM2-C_7Rp_5a7KNam0edFOMT_ynaEGDyP8exIP5QZiG7bl63Ys7LwUDpVtMTsaw-SzpDgLEGxdYUVtsmoWyq1nycU8hKyHX60d4LFZzb4Puc-p4Bhut4Cz5drdjzKebPSgUXsG4z6u7V8oq3rusrCHr-op4o5Bi5rFodPg9VZ1Tgc218eqxwRPSE7JkL1XrJwOo3TNcxgY1%22%7d
Protocol
HTTP/1.1
Server
69.89.69.121 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 20 Feb 2019 20:22:15 GMT
Server
Microsoft-IIS/10.0
X-Powered-By
ASP.NET
P3P
CP="CAO PSA OUR IND"
Access-Control-Allow-Origin
http://engine.phn.doublepimp.com:8890
Cache-Control
private
Access-Control-Allow-Credentials
true
Content-Length
0
m45777_480x270_AACAudio_720.mp4
doublepimpads.com/asset-68c150ad-f2c6-46f1-b790-8c2dcad4fab1/
3 MB
3 MB
Media
General
Full URL
http://doublepimpads.com/asset-68c150ad-f2c6-46f1-b790-8c2dcad4fab1/m45777_480x270_AACAudio_720.mp4?sv=2017-04-17&sr=c&si=77eae9c2-b943-4b60-8929-f2db2af81b49&sig=pawA8XPgtadcRtQJ7OgKrPl5U7U7ZpheSsYsZbI4vJ4%3D&se=3018-04-22T21%3A20%3A37Z
Protocol
HTTP/1.1
Server
2606:4700::6811:5d1e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
f93d8647f1c6a2e1ed8069e8d6a3a9bc0bf90c51502d245ddb473ecd206b85ef

Request headers

Referer
http://www.javbros.com/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=327680-

Response headers

x-ms-blob-type
BlockBlob
Date
Wed, 20 Feb 2019 20:22:15 GMT
Via
1.1 147e057d2f96cf5a0082d96978e38a5b.cloudfront.net (CloudFront)
CF-Cache-Status
HIT
Content-MD5
OWlxGvBguzvcsl3SRftHGQ==
x-ms-server-encrypted
true
X-Cache
Hit from cloudfront
Content-Range
bytes 327680-3277302/3277303
Connection
keep-alive
Content-Length
2949623
x-ms-lease-state
available
x-ms-lease-status
unlocked
Last-Modified
Thu, 20 Dec 2018 21:20:28 GMT
Server
cloudflare
ETag
"0x8D666C0F6EC350B"
Vary
Accept-Encoding
Content-Type
video/mp4
x-ms-request-id
32a83caa-701e-011b-4ebf-98e978000000
Cache-Control
public, max-age=14400
x-ms-version
2017-04-17
CF-RAY
4ac3af2ab649973e-FRA
X-Amz-Cf-Id
CQFJH3OvNGTsYLRInCmR0kKvG6DshP7qFBbRYXbrKdmK66DwPiL4-w==
Expires
Thu, 21 Feb 2019 00:22:15 GMT
imp
ca.clcknads.pro/v2/a/vsl/
0
493 B
Image
General
Full URL
http://ca.clcknads.pro/v2/a/vsl/imp?d=AV39A-HZZOXa2ldJUIVScGWsMJ_NY7buejNWxAAUYM5lFoh67SBo087ihQSheeZVF4UXE7RLPf3xPBo2BeSONVQaX5wNR5umU-bLpxVqSao55v7CzdfOfcFXLw9VXcgwwLc17Eu-WB9mWXPox8TfoGgmURTkxGTwXMZJlIm0e7v6rtQ5v2h4Tc1SwL7CUR0KhguYSpwS5dsQ9pqlZZrl5XQ-ldEWBCFk5Bb8omOsErvRmfIJlxAnXykihusSJreyQBjb6D2w4h3wHkFNiKPmuxb2jT2VfeiMMdXwMxix1skYqYuU5uHt-8n-JYCBUCQrQsIQ0raS7ulB2G-FCnooheyxIdNGCMv4u-uZhoENsRqK88MyHpod6iXBtPmbhI1QRYSKTIcIXb5NQnAp8SmDF32ywluycYnTGlxid0g3tFLuVtNYM7qrWDs1wfJLKcshdwrTL8nM-JIb9qR7Q_iPSzxATDnkwf6bnTcjPqUyh0Et9-9GWaxNbUIGXgJwg1LOoa3vzTLPcmeyWRf1i-9RTK7dj793qeEWySi7o9-WuNqAMqdwy64lDpxGOj3M6JIdKnMlZdXPc_DoTar11a65qiyXbLlbBWZnSyPGKJN0TXPQxkSkK9B5VTHT1atTTM0XN0aL46UMC8kVaIfjsuX1BemtcGs6aLnkbMl3LdVjFYrcsfY91g9MGvfoqbj0pSb8_XP51xJ4HTq_GP_XcBlE7NKdwhuUUMNvVkotUXafkC5JAuosJjW57QTeJpvgz9SlfOGuavigdynzsjut07g37dglDX_T3J97VUUqW9gc6o48C-v_OsxZDuFT2nCMCa9IA9gVyBwXZWWQWimfmqJbCmK7uSNqS631xX8G570BXz4iYNg4Tw9u2vb9eMiMmz-3gWczcHP0gOpmSS5EG2_syWkmcUS1RiprYqdYUJMgD1q5k95oCjjWJL2f6IvbdZVXq4n-xH_8GnQLX8MKoU6_E0sR4fUl5pS_N17ZucjyLSdSCco9YuKA9pjgbND7jvx-SNNDH07OE9DNdBqLthe7nQZIcmG6Huo0MhfIDXyh1UxCgJlhMx8gdaBa2eQKa8_Pip3sQeKDQd53MqccZ3jyagj71dPz4UIVyohLytF9IWvaNjsag8BABxlWgVrZ-WRVwSR_mu9tJcmoAK5WHKQrLkzQlH7L8nhPtywFdUwwWjpi1aYxNw2VyDQ-U0Os5EADFpiPkZDaeKWRUVwFXpFdqAKsJCAX5nCqTMaL5Dlbf97M-u5gQiGdHl9LMwyMO6u8KdqVNrwZjWgtllTl6KGXNrzq7b01OVPek4plnAIBnFo3-6ML93vTdZQlxxFXiySCO3jYRyGW8-xiOi0RDp4S0V1o6GWNK0yZ_12swSw5Ph6WwFxw6y8CBvW1rCROjXiokt9Gfg2fIDyIL16yLmldyJAQaAvHztbCPqvTNpKskQY7MA3AD_VkRElvBYG99k8BtdKx8HEccet290OYr_y7G2OHB5FltT1d6oBRhsOYeDVWqCKMnUFoB4KS6IYY63tLnMNACh9iVa9smxji5EFJLpJxWkPEaTNoYsQILCjAbRd2SJBTuiY2cF5or54t9ID_5Z5R7QKftK3OXXARD66xmHAbhJOX_9tywd-6nl1jtONiBFyOegIim6ORU12PQVAVcvjL6HMchgdK_d2MH6q7KiZnqxDj99hlOr9iwn-LJ7HHhXOpEkhTVK7pITor00HIyIgEUcsrREpYnaSYjYeIVG-LCFZjibcWuV_rMgfKCM7r9fixPM-WTNsFCZ7stdiVXWjxtcmn3yo6Km-h5QxfPKQ_2hutOUk3
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Pragma
no-cache
Date
Wed, 20 Feb 2019 20:22:15 GMT
Referrer-Policy
unsafe-url
Last-Modified
Wed, 20 Feb 2019 20:22:15 UTC
Server
nginx
Access-Control-Max-Age
86400
P3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
Access-Control-Allow-Origin
*
Cache-Control
private, no-cache, no-store, must-revalidate, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
text/plain; charset=UTF-8
Expires
Wed, 20 Feb 2019 20:22:15 UTC
imp
ca.clcknads.pro/v2/a/prl/
0
493 B
Image
General
Full URL
http://ca.clcknads.pro/v2/a/prl/imp?d=AV39A-HZZOXa2ldJUIVScGWsMJ_NY7buejNWxAAUYM5lFoh67SBo087ihQSheeZVF4UXErNLOvX0OhY8BeSONVQaX5wNR5umU-bLoQ5rfqoG5rWKiteJIJZAOQppXJl-q-Ah5g-7DE1iFSbkxI3BpG0nRQi0wDm-EMQax8Dhe-39qIc9unowDckZiNXEGkNh0R-SDpYV5opZpp6pLITh4HUqiYESWW8o5kWv6zasRLzXyvYMhVhnSX5syPIULL6pehScoEbj9RDuDAAV0OTctkCp9m2DcOORJJuscV-C3YVH09uC5Ory65KtfceFXiI3bMlAkczP-P9QgDzfTWk4mvqmJ_NRT4OD6v6WmJRb51vY8cs4ALIQr3G96eiRnp8LBM3JW5wbWYNAFi9YoTiPA2vlhQfEbIrGbB8wfR1jtBG7WZUCdKm7Ry0ix8tKJdoUJ1mAZN_F5J5Yr-RnX-mLRz14WyLX1rXCyDsqOr8skg9m8eJHT7odJFMQT0w7hWvFgqvozSnIPzOiTwSpyPhVCfGEl6w6svos2UPlttyXuNyVIOM90LUYG79CdWLMpccdc25qedbLfvGpXev7mO-56GGXVKB7On5cUBnWQ81hTnLQwVG3aZ15bSjz6rNoV_ACFELEvKVcSNUWbIri8_W0C6S9fjRkL63keMl3ap06Ut2D-bEv2hpAW6ixsbevoTquonOnkAV2Gj67VaPXKl5c7dOLj1PNSNEpHRQ8R2fd0y1NTbUsXWeI8RGQPpW_jpmsdunpPKG4ZW-47CC7yPp07txqUn-kn7FzWFgrXN9N_4BjSLqyc5VBHKcYhGOCDbdfQZsWzFNIZTLTVAev991bUCW_rzh2TOChxXQU-LwcQDguKNZnAV9j3-rveY_Ewielxyxta2XvwqllTWEbGxam-G45ewv8RnAsZrFDTJRtW1q1hsoiVWmJb_qXr96CbY0avYj_2HKsWS0TTYVB_1i2C1pTovYhqcu_ShnssdvxNWsHCYVwZejGqZieC7bDgKMgD8ZPF0mDR4nVZlzA6AyxkRpfMCK5GqVrMmWPNmq3hFRM39YqJA92NvlCy6JBNdzBgpHkVfHBAt1zffgcGyjVdgLzy8fys1dYi6gK7t42MmWFYHAQqd9nDV8JgVbL_GZQ0T5_2qx1Lcm0EL4QQ7MhNU3Ol3vV5TgCtSQCZlAgSnw9z7I_KwKe3S97Alr9rhkbBN7Ez4HScqaEQh5GXZUS9wLbNFkS8gL_e9yJ7mltDcG8y-A_DWyQH1RGIgaXPJCrDcbHabxAwHkyi1br7qXBLrK1te0gLVTRlrd_uB5Tw1pqvKoL63_NNtQlgkB6mRSCLHzVViqQtKQ0ciwGV9ldnFB083udNGCPlAOsmWw-OErHkg0jvn5SVKC3rSEe3S35k45ELluYc2zcLQjleGhZx8NJaFPLw9aVZvmGMJb5kQc7MAiUWfA_Rhc9UcGj9hNCotaD501MIuskoV-c4aOuQzuHXowqqT5Z54EQloKWOHpVqHvdjUBMEqab-cpW6wwGq8VWDxIhAa5plQCPrW9BI49wXUSMIUEmX88QaQmBQ1ZaO_9Yuk8mHl8EwZhb4eiv1IJE1gKqmqbxGzENDbO1gGMF7_OI-sMTrZ_zmVEolqZGClDMNWhqqqSOWR_cWUgScvvW4nYLiB5SmZy5H76zd3p7qQ3n78l_OvowiTWLLKvDk3S1EFRUSrfrPzo5zUGWj5sNeddADkpTh6COipuKSGiVEVR9iaVZXSY6V2XRzrXQXh5UTHrBAA
Protocol
HTTP/1.1
Server
88.208.59.100 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Pragma
no-cache
Date
Wed, 20 Feb 2019 20:22:15 GMT
Referrer-Policy
unsafe-url
Last-Modified
Wed, 20 Feb 2019 20:22:15 UTC
Server
nginx
Access-Control-Max-Age
86400
P3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
Access-Control-Allow-Origin
*
Cache-Control
private, no-cache, no-store, must-revalidate, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
text/plain; charset=UTF-8
Expires
Wed, 20 Feb 2019 20:22:15 UTC
track.engine
engine.phn.doublepimp.com/
0
285 B
Image
General
Full URL
http://engine.phn.doublepimp.com/track.engine?dcid=3_ctx_ea14b171-cfd7-48da-99e7-08969392f0d9&evt=2&evtData=%7b%22vp%22%3a1%2c%22v%22%3a%229axfVFjfih-1XK-K0ZbT3Cji5n5z4X04XMWSdSg57ez53d8UhDQRKHZUBwOrKCLCXbMDsG6R5rpzk9OwOjaN-4S_yNIq2309EOqOBD_qxBrpA61fVVoxHPZZD-KteM08nhDQHNPEG1KlcSEZnoX1Cz1Z-WrjQmVy52uu5Tc3-jJ6viRGPtwXXj1o2wRSkypO6Ldk9pulJl1ZYpjFlDuCmiqsppovqf5lRfNjIf4CMErVP0LIfCkaED0GrBRvkKFQQyzmpvYiXfK0os1tk-BnMmvZ1CkDeCsWs3VCKADP6Trya9tpSWo6ik7DF3J6R6NbyfgEUcq0phbnJDrGaPhctOomkv8iRKMS_euIMdsErPDFdDVqZG9xm_-6TVIvsoyDU9cOEjo3DY2bX1yHj1mkaYHWbTuB7e6ecH43ycsqWaS5KOZp7AXNViY4ucNhtILQoRkqMawBraC12q2da_76V-JnN495L3N6yqDTlyQlQjDqlkFO4kKQeBl1BkaxpJZJBNlAe8ij55rMb2wP328ig8M8pPXn2x5i3PD-n8Nx3loDM47vl60sPSqmuyOmZoVNOq2hyXIOqbTKVSMZIaOgQ2jynntWb8P4msSv0fOKKbIB5Zrn1uhTnXR1XtXvJgd7eiVxdM9LcTRTGdkmaj7mOKfb4E8V1R9mzQM2-C_7Rp_5a7KNam0edFOMT_ynaEGDyP8exIP5QZiG7bl63Ys7LwUDpVtMTsaw-SzpDgLEGxdYUVtsmoWyq1nycU8hKyHX60d4LFZzb4Puc-p4Bhut4Cz5drdjzKebPSgUXsG4z6u7V8oq3rusrCHr-op4o5Bi5rFodPg9VZ1Tgc218eqxwRPSE7JkL1XrJwOo3TNcxgY1%22%7d
Protocol
HTTP/1.1
Server
69.89.69.121 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.javbros.com/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 20 Feb 2019 20:22:22 GMT
Server
Microsoft-IIS/10.0
X-Powered-By
ASP.NET
P3P
CP="CAO PSA OUR IND"
Access-Control-Allow-Origin
http://engine.phn.doublepimp.com:8890
Cache-Control
private
Access-Control-Allow-Credentials
true
Content-Length
0

Failed requests

These URLs were requested, but there was no response received. You will also see them in the list above.

Domain
gitgrub.pro
URL
http://gitgrub.pro/lib/crypta.js

Verdicts & Comments Add Verdict or Comment

42 JavaScript Global Variables

These are the non-standard "global" variables defined on the window object. These can be helpful in identifying possible client-side frameworks and code.

object| onselectstart object| onselectionchange function| queueMicrotask string| GoogleAnalyticsObject function| ga string| ad_idzone string| ad_width string| ad_height object| google_tag_data object| gaplugins object| gaGlobal object| gaData function| getParameterFromUrl string| p number| dt string| exoDocumentProtocol string| ad_sub string| ad_tags string| ad_notify string| ad_el string| ad_type string| ad_screen_resolution function| $ function| jQuery function| Tether object| _pop string| uid string| wid string| popns object| IOarzRhPlP undefined| miner object| popjs object| Base64 function| pafban object| detectZoom object| PopAds object| _pao function| i333 function| f5yy string| _DfIrLoGdmy6vdQOr object| UmDWe9Dn8Fr2nKAs function| cIPop

8 Cookies

Domain/Path Name / Value
spot-01.trackingpro.pro/ Name: 5c5c1732494be47c037ff7f6
Value: 1
.trackingpro.pro/ Name: uuid
Value: Sk5RlP4sHV
.exoclick.com/ Name: impressions
Value: x%9C%8D%CB%AB%15%00%21%0C%05%D1%5ERA%7E%10x%A9%06%89F%EE%A1%F7%05%B1%7E%C5%88%2Bf%40%F1LhmM%AD%E7%80%5DrN%C8W%29%5C%BB%8B%F9%81%E6%82%83%C4%9D%29%F7qDa%D6_%9F%81B%EF%B6_%D7%D7%1Dn
.javbros.com/ Name: __cfduid
Value: d46b5e3cadbd676161f079229fb8ec1911550694132
.exoclick.com/ Name: __uvt
Value: a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225c6db6f647df19.727757973708364546%22%3B%7D
.javbros.com/ Name: _gat
Value: 1
.javbros.com/ Name: _gid
Value: GA1.2.1645586972.1550694134
.javbros.com/ Name: _ga
Value: GA1.2.134405316.1550694134

49 Console Messages

Source Level URL
Text
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Popunder Script @ popunderjs.com
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Author:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Version:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Release:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
11
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
popunderjs.com:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
popunderjs.com:
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vY2EuY2xja25hZHMucHJvL3YxL3B0LycgKyBuYW1lCgkJcmV0dXJuIGltYWdlCgl9Cgljb25zdCBuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGJ0b2EoKHdpbmRvdy5kb2N1bWVudC5yZWZlcnJlci5yZXBsYWNlKG5ldyBSZWdFeHAoJyhodHRwcz98YW5kcm9pZC1hcHApOlxcL1xcLycpLCAnJykuc3BsaXQoJy8nKVswXSB8fCAnZG90LmNvbScpLnRyaW0oKS5zcGxpdCgnJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJcmV0dXJuIGl0ZW0uY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikKCX0pLmpvaW4oJycpKSkKCXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24gKCkgewoJCW5ld0ltYWdlKG5hbWUgKyAnL2YucG5nJykuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHsKCQkJc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CgkJCQluZXdJbWFnZShuYW1lICsgJy9zLnBuZycpCgkJCX0sIDUwMDApCgkJfSkKCX0pCn0od2luZG93KQo7IShmdW5jdGlvbiAod2luZG93KSB7CglpZiAod2luZG93LmNJUG9wICE9PSB1bmRlZmluZWQpIHsKCQlyZXR1cm4KCX0KCXZhciBiZXR0ZXJQb3B1bmRlciA9IHdpbmRvdy5VbURXZTlEbjhGcjJuS0FzCgl2YXIgbG9jYWxTdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZQoJdmFyIHNlc3Npb25TdG9yYWdlID0gd2luZG93LnNlc3Npb25TdG9yYWdlCgoJZnVuY3Rpb24gUG9wdW5kZXIob3B0aW9ucykgewoJCXRoaXMuc3RhcnRlZEF0S2V5ID0gb3B0aW9ucy5zdGFydGVkQXRLZXkKCQl0aGlzLmltcHJlc3Npb25zS2V5ID0gb3B0aW9ucy5pbXByZXNzaW9uc0tleQoJCXRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfcHAnCgkJdGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5ID0gdGhpcy5pbXByZXNzaW9uc0tleSArICdfbHAnCgkJdGhpcy5mcmVxdWVuY3kgPSBvcHRpb25zLmZyZXF1ZW5jeQoJCXRoaXMubGltaXQgPSBvcHRpb25zLmxpbWl0CgkJdGhpcy5saW1pdFBlclBhZ2UgPSBvcHRpb25zLmxpbWl0UGVyUGFnZQoJCXRoaXMubGltaXRQZXJTZXNzaW9uID0gb3B0aW9ucy5saW1pdFBlclNlc3Npb24KCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgbGFzdFBhZ2UgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSkgfHwgJycKCQkJaWYgKGxhc3RQYWdlICE9PSAnJyArIHdpbmRvdy5sb2NhdGlvbikgewoJCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgMCkKCQkJfQoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNMYXN0UGFnZUtleSwgJycgKyB3aW5kb3cubG9jYXRpb24pCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5pc0FsbG93ZWQgPSBmdW5jdGlvbiAoKSB7CgkJaWYgKHRoaXMubGltaXRQZXJQYWdlICE9IDApIHsKCQkJdmFyIHBhZ2VJbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCAmJiBwYWdlSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclBhZ2UpIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlpZiAodGhpcy5saW1pdFBlclNlc3Npb24gIT0gMCAmJiBzZXNzaW9uSW1wcmVzc2lvbnMgPj0gdGhpcy5saW1pdFBlclNlc3Npb24pIHsKCQkJCXJldHVybiBmYWxzZQoJCQl9CgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJdmFyIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDAKCQlpZiAoc3RhcnRlZEF0ID09PSAwIHx8IG5vdyAtIHN0YXJ0ZWRBdCA+IHRoaXMuZnJlcXVlbmN5KSB7CgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5LCAwKQoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zS2V5LCAwKQoJCQlyZXR1cm4gdHJ1ZQoJCX0KCQlyZXR1cm4gaW1wcmVzc2lvbnMgPCB0aGlzLmxpbWl0Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmluY3JlbWVudCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXksIHBhZ2VJbXByZXNzaW9ucyArIDEpCgkJfQoJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwKSB7CgkJCXZhciBzZXNzaW9uSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIHNlc3Npb25JbXByZXNzaW9ucyArIDEpCgkJfQoJCXZhciBpbXByZXNzaW9ucyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXkpIHwgMAoJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIGltcHJlc3Npb25zICsgMSkKCQl2YXIgc3RhcnRlZEF0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5zdGFydGVkQXRLZXkpIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDApIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIG5ldyBEYXRlKCkuZ2V0VGltZSgpIC8gMTAwMCB8IDApCgkJfQoJfQoKCVBvcHVuZGVyLnByb3RvdHlwZS5hZGQgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHNlbGYgPSB0aGlzCgkJdmFyIGNvdmVyVGFncyA9ICd2aWRlbywgaWZyYW1lJwoJCXZhciBpZ25vcmVUbyA9ICcnCgkJdmFyIGJpbmRUbyA9ICcnCgkJdmFyIHJlbG9hZCA9IGZhbHNlCgkJYmV0dGVyUG9wdW5kZXIuY29uZmlnKHsKCQkJZGVidWc6IHRydWUsCgkJCWNvdmVyVGFnczogY292ZXJUYWdzID8gY292ZXJUYWdzLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJd2Via2l0QW5jaG9yQmxhbms6IGZhbHNlLAoJCQl0YWJVbmRlcklnbm9yZVRhcmdldEJsYW5rOiBmYWxzZSwKCQkJaWdub3JlVG86IGlnbm9yZVRvID8gaWdub3JlVG8uc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQliaW5kVG86IGJpbmRUbyA/IGJpbmRUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWRlbGF5OiAxCgkJfSkKCQliZXR0ZXJQb3B1bmRlci5hZGQodXJsLCB7CgkJCW5ld1RhYjogdHJ1ZSwKCQkJZGV2aWNlOiAnYW55JywKCQkJdW5kZXI6IHRydWUsCgkJCXdpZHRoOiBudWxsLAoJCQloZWlnaHQ6IG51bGwsCgkJCXRvcDogbnVsbCwKCQkJbGVmdDogbnVsbCwKCQkJY29va2llRXhwaXJlczogMSwKCQkJc2hvdWxkRmlyZTogZnVuY3Rpb24gKCkgewoJCQkJcmV0dXJuIHNlbGYuaXNBbGxvd2VkKCkKCQkJfSwKCQkJYmVmb3JlT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJc2VsZi5pbmNyZW1lbnQoKQoJCQl9LAoJCQlhZnRlck9wZW46IGZ1bmN0aW9uICgpIHsKCQkJCXJlbG9hZCAmJiB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCkKCQkJfQoJCX0pCgl9CgoJd2luZG93LmNJUG9wID0gZnVuY3Rpb24gKHVybCkgewoJCXZhciBwb3B1bmRlciA9IG5ldyBQb3B1bmRlcih7CgkJCXN0YXJ0ZWRBdEtleTogJ19jX3Bfc3QnLAoJCQlpbXByZXNzaW9uc0tleTogJ19jX3BfaScsCgkJCWZyZXF1ZW5jeTogMjE2MDAsCgkJCWxpbWl0OiAxLAoJCQlsaW1pdFBlclBhZ2U6IDAsCgkJCWxpbWl0UGVyU2Vzc2lvbjogMAoJCX0pCgkJcG9wdW5kZXIuYWRkKHVybCkKCX0KfSkod2luZG93KQo=(Line 1)
Message:
console.clear

Indicators

This is a term in the security industry to describe indicators such as IPs, Domains, Hashes, etc. This does not imply that any of these indicate malicious activity.

ads.exoclick.com
ajax.googleapis.com
c.adsco.re
c1.popads.net
ca.clcknads.pro
cdn.javbros.com
cdn.popcash.net
cdnjs.cloudflare.com
code.ionicframework.com
dcba.popcash.net
doublepimpads.com
engine.phn.doublepimp.com
gitgrub.pro
javbros.com
maxcdn.bootstrapcdn.com
serve.popads.net
syndication.exoclick.com
www.google-analytics.com
www.javbros.com
gitgrub.pro
185.59.220.22
205.185.216.42
209.197.3.15
216.21.13.17
2606:4700:20::6819:7b63
2606:4700:20::6819:7c63
2606:4700:30::6818:6611
2606:4700:30::6818:6711
2606:4700::6811:5c1e
2606:4700::6811:5d1e
2606:4700::6811:a6ba
2606:4700::6813:c397
2a00:1450:4001:806::200a
2a00:1450:4001:809::200e
34.196.182.1
69.89.69.120
69.89.69.121
88.208.59.100
94.31.29.128
95.211.229.245
95.211.229.246
95.211.229.247
0718041c8281b5aeff2a35b21ff3059aee7863477cc36d476c68d8b6338e3ae6
10928be8a57d4f6cda357068b58945712dd65fc187388961fde9be8d319fd622
12623a1afe42085bbacafcda43dfd738378d3c197423aa770e4a73a32ca14915
1655f9ca582fdfbdac66c8199397e534c1d0c4e5895860eb38f8aee18a880f31
19ba920e285740334e022bd97d6dfb8f7c390db18d301346e2b527e4fe576db9
2e0a83d71b1a11c67ae885b6e0f7d7f21de3740125a0df0893e1f97b725f7cd8
30754db5c66279afa9b086a62cb4278fa5a6c4dd1c966ca4ce1fb03ef0bfc45e
30ae0fc4ff487133997e4771830f8f1fdb0ec5689ccd300c3488aebe4236e2f9
3a6a3b097ee06240ad79584495f8c72c8ed85b7300c80bf96998dfb0e6fc8af3
3ac736a52b986a9ea970d80738c0a32d6de79352169b02bd6436809626eadb0b
3e552578c7d450b023f2cd9d28f830be4335c3acc6c4ab6dadda0769f09e5f22
3e86793cf6bf340804d682297f9d55ac54f98ac184c6ab1af7f581d6fe2ae814
4050f5219042f702ee52be5ec0d40fd71c2e0cd596257c220d850ff00107f799
442b47d8c368cf231b227c2901a62b198e9fa4c9f81cf56761e6f7825bbc44cd
4a18fed2b4730dffd9cb88236fbc628b9c54f1eedd3ffa361e4e200f19094e80
4d5237f17df0e3cd417f46d8a6e821fcd45277d098c5432250dbf855671a87db
55faae84d639eb65bfebbbfe7f459a616d053f0a06ca478793c59a4b76502f97
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd
5a6cd1878bc556a56974c28c154ffe1bb3cc71162626cd7aa56a0de9aaeef958
5e700835ec05293a3d0f9e354e7d038319d34521cd279e782198dff6d1dd58f2
61bd92f4d649f347ce7c95066a58856b777e0d971019fec7deeac73ee98f4bf3
6740c3d670cbb2833a7a74fb12456503cf2f9248d5bc4958fab28ba5be432ce6
6f77cc899809f9ccd971cc0520cdf0ca669240bf5e807c31b6125efc5110e090
74813c68caf1885a5c65b3ad2e5d15f55547ceb0dbec592bf89076441c065065
74ddff937b6575f8ab5b2edf7ad3bb6755dae3a6093bbb50c51a273fdb08bbc8
7610427384ed1396a9b550db4e271bb995dc5d1816b081135a1f8cf2f25bbc6b
768eb3740e2adbfd617752c0bdc347f6362a2c8b42c276c4547ace8c2c2f93be
7dda91eba7d69c553238bc7d3cb651d3eb8b20b0fb3090c4efe88e5fc76606b9
7df311bc1d28ac39497afdca42dd8b54374af6e96dc4d655f24db3731bca0d85
7e8687e3a69eef3219e4c7b881036aac42c6283a23f1bbc7864dcc3d63ad7547
8246a6b22c0a49520ef5bfae8187814632e5b8394717bd21d0b0988e20878281
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
83548d528fc1583d7105e0d440021e14e5d1fa31a845d142eee8784db7b5a4c4
85556761a8800d14ced8fcd41a6b8b26bf012d44a318866c0d81a62092efd9bf
864db74d10186351fa36c2679bd9d7e82882b605d165d5a967f9660f8fc09c2a
879862aafa69728bb2b97b10921cc3b3418f6de1903f3209fb5d2230bde77248
8fe5ebbe44388c9f7d1e3d2924a3ebea4d110a0c430d24ecdcf06a2eb5f610c7
92ac508220f5bb60ec94e07650528eb66625f82a4740ada068cde05365781286
9887e1bff87730bab759289295dbae64edec691373cee7f52caf30df3de5dc96
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627
9d781128a8ece413b003d5612b8398bf9340ef7f5b751d12bd125ba523d3ceb5
a150200d2a68e93af42da6b91311c6a297f8123c6491ec56e13269ed3a6f489f
a27edba0e34b2648a90a800ae94fdef3e39016d1b9bd6e54a31ede1f1cddfed0
a6bdfcd47d10e9491b11ac64c8000b525b1dfb3d7590668bc4637f05a50f183b
b4221c88c806b7201fef40ea006fde86282b2a93a1be048dcfd45b5b1f736160
b8a3b52eb6e493c068b109d2e2369b0b22e50f65863a96b05ef449c596bc7255
be2bd40335d537208ea814ac3ee2e1c8d3c4b9641be32936ae2b24451ddf04d9
c1417ddd1911b3db25f682e7cc1fc5936cccefffffc7db300509dfddb16b1e39
ccea92c5f0ec72f396f7a21b3a8b73e9a1bd74dc13498e35d1d70f3cfd35e1c4
e077b567de9e99e405f8462f184797c410453c3af0060209b8a4521712f1a9df
e0d7a01cf96c53584a2ca3722ae972ea9c17d3ebdba525323397d958f73f0268
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
ec5727c69dff805edf4a8f5b4b716599ad93d834e0208c427cd2ca13da1439f1
ec98e93bb75756d9635754bbf234d67e865e09bd3278d548fdf6489a9c446862
f0a540a3f8a5afa4cf4e717a16b07d83e3a5d225450cb1b453eebf313073df37
f93d8647f1c6a2e1ed8069e8d6a3a9bc0bf90c51502d245ddb473ecd206b85ef
f985830729b657178083ea2a946a3b861ee3cc6cc9c27d8644d410f17bbcdd85
fea84b91811d39a3cba7c081a715af6a5bce7aff4b95aaef3cfaecf4141d2c7a
ff9a470d98767efd5e6489b27e24e1b41e408382ea0e3ca2b6d4fb7cb8dd4fff